1. Field of the Present Invention
The present invention is in the field of multiprocessor systems and more specifically to multiprocessor systems that use function shipping to reduce memory access latency.
2. History of Related Art
In multiprocessor systems, reductions in access latencies to remote data are not keeping pace with increases in processor speeds and, as a result, access latency is a potentially performance limiting issue. Function shipping is a known technique to address access latency issues. Function shipping refers generally to a procedure in which an is operation forwarded to and executed on a remote node, hopefully a node where the function's operands are local. While function shipping is theoretically desirable, determining the best node on which to execute a particular function is not trivial. Currently, a compiler or the node originating a function shipping request determines the destination node. Unfortunately, it is exceedingly difficult to predict a priori where data operands will be local when a particular function is ready to execute. One can force data operands to reside on a particular node or to store or replicate an entire set of related data operands (sometimes referred to as a data object) on one or more nodes so that a single node has access to all possible operands on which a function might operate, but these approaches impose highly undesirable constraints on data storage. It would be desirable to implement a method and system for achieving function shipping where the destination node is determined at run time based on where data actually resides within the system without constraining the manner in which data is stored.